class Solution {
public:
    int findFinalValue(vector<int>& nums, int original) {
        int mask=0;
        for(int x:nums) {
            int k=x/original;
            if(x%original==0&&(k&(k-1))==0) mask|=k; //k是2的幂
        }

        mask=~mask; //找最低位0，等价于取反后，找最低的1
        return original*(mask&-mask); //最低有效位
    }
};